package pw.hais.dz.service;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import pw.hais.dz.dao.UserDao;
import pw.hais.dz.dao.UserTokenDao;
import pw.hais.dz.entity.User;
import pw.hais.dz.entity.UserToken;
import pw.hais.util.HttpCode;


/**
 * 用户 业务逻辑层
 * @author Hello_海生
 * @date 2014年7月30日
 */
public class UserService extends BaseService{
	private UserDao userDao;	
	public UserService(){
		userDao = new UserDao();
	}
	
	/**
	 * 登录方法
	 * @param u
	 * @return
	 */
	public Map<String,Object> login(User u){
		User user = userDao.findUserByUserName(u.getUsername());
		if(user==null){
			return setResult(HttpCode.ERROR, "用户不存在！", "");
		}else if(!u.getPassword().equals(user.getPassword())){
			return setResult(HttpCode.ERROR, "密码错误！", "");
		}else{
			//生成token 并保存到数据库
			String token = UUID.randomUUID().toString().replaceAll("-", "");
			UserToken userToken = new UserToken(user.getId(), token);
			UserTokenDao userTokenDao = new UserTokenDao();
			userTokenDao.delete(" uid = '"+user.getId()+"'");
			userTokenDao.save(userToken);
			
			//拼凑返回结果
			user.setPassword("");	//为了防止返回密码。
			Map<String,Object> data = new HashMap<String,Object>();
			data.put("token", token);
			data.put("user", user);
			
			return setResult(HttpCode.SUCCESS, "登陆成功！",data);
		}
	}

	

}
